home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
DRI-archive
/
roche
/
IBM_ sys32_ drive.txt
< prev
next >
Wrap
Text File
|
2009-12-11
|
40KB
|
1,052 lines
IBM32DSK.WS4
------------
- Chapter 8 of the "IBM System/32 Functions Reference Manual"
IBM Document GA21-9176-1
Second Edition: May 1975
(Retyped by Emmanuel ROCHE. Posted to comp.os.cpm.amethyst by
Roche 07 May 2005.)
Chapter 8. Diskette drive functions
-----------------------------------
The IBM System/32 diskette drive has a single head for reading and
writing.
The diskette supports two primary system functions:
- Data interchange, using the IBM diskette for standard
data
interchange.
- Storing data from the disk to save it for future use, then loading
it
back into the system at a later time when needed for a job.
Physical characteristics
========================
Only one side of the diskette is used. The diskette surface is divided into
tracks. Each diskette surface contains 77 tracks; track 00 is the outside
track and track 76 is the inside track.
Figure 8-1. Standard interchange diskette surface recording arrangement
(not "retyped")
Of the 77 tracks, only 75 are normally used. Track 00 contains the volume
label; tracks 1-74 are primary tracks used to contain data records. Tracks 75
and 76 are available for data storage in the event that one or two of the
primary data tracks become defective.
For standard data interchange, each track is divided into 26 sectors (Figure
8-1). Each sector is 128 bytes long, so it is possible to store 242,944 bytes
of information on tracks 1-73. Data can be stored on track 74 of a diskette in
the standard data interchange format, allowing for the storage of 246,272
bytes of data on the diskette, if the data on track 74 is to be read only by
a System/32.
On diskettes in the extended format, track 00 is divided into 26 sectors, but
each remaining track is divided into eight 512-byte sectors, making it
possible to store 303,104 bytes of information on tracks 1-74.
The data stored in each sector is called a record. Therefore, because the
diskette is formatted into tracks and sectors, each record on the diskette has
a definite address consisting of a track number and sector number. This
address is recorded at the record's physical location on the diskette.
Diskettes that contain prerecorded record addresses are known as initialized
diskettes; each record consists of an ID field and a data field.
Rotational speed of the diskette drive is 360 +/- 2.5% RPM. The nominal data
transfer rate of the diskette drive is 31,250 bytes per second. The diskette
drive reads 128-byte records from a diskette and writes 128-byte records to
a diskette at the following rates:
Using diskettes in the Using diskettes in the
Standard interchange format Extended format
Reads Up to 3,400 records per minute Up to 4,100 records per minute
Writes Up to 1,800 records per minute Up to 2,200 records per minute
Record format
=============
+------+------+-----+----+-----+------+------+-----+-----++-----+------+
| | | | | | | | AM2 | DATA \ ... | |
|
| GAP1 | SYNC | AM1 | ID | CRC | GAP2 | SYNC | or | or \ | CRC | GAP1
|
| | | | | | | | AM3 | CONTROL\ | |
|
+------+------+-----+----+-----+------+------+-----+---------++-----+------+
Format: Field
Description
GAP1
The gap between the data field and the next record. It is variable length and
contains all 1's.
SYNC
A 6-byte field of 0's which synchronizes the hardware circuits prior to
reading the information from the diskette.
AM1
A single-byte identifier field address mark which identifies the ID data and
contains hex FE.
ID
A 4-byte associate sector address in the format CHRN, where:
C = Cylinder address.
Valid one-byte binary addresses are:
Decimal = 00-76
Hex = 00-4C
H = One-byte binary head address.
The valid address is X'00'.
R = One-byte binary record address.
Valid addresses are:
Standard interchange format Extended format
Decimal 01-26 01-08
Hex X'01'-X'1A' X'01'-X'08'
N = One-byte record length indicator used in the record length algorithm:
128 x 2 to the power of N.
N is hex 00 for standard 128-byte records, or hex 02 for 512-byte
records.
CRC
A 2-byte cyclic redundancy check field which verifies that the ID field and
data field were read correctly. The system generates these bytes during a
write operation and automatically performs a read-back check to verifytheir
accuracy.
GAP2
Interrecord gap between the ID field and the data field. It contains hex FF
and is generated by the system during write operations.
AM2 or AM3
A 1-byte field containing either X'FB' or X'F8'. X'FB' is a data field address
marker (AM2) that identifies subsequent information as a data field. X'F8' is
a control field address marker (AM3) that indicates that the following field
contains control data.
DATA or CONTROL
The length of this field is specified by the record length indicator (N)
contained in the ID field. The System/32 record length of 128 bytes (N=0)
conforms to the specifications of the IBM diskette for standard data
interchange.
Figure 8-2. Diskette IOB format
-------------------------------
Format: Displacement of leftmost byte in hex
IBM program label
Length in bytes
Field description
0
IIOBCAN
2
This is the sector address of the last sector accessed.
2
IIOBCMP
1
This is the diskette completion code (in hex).
40 = Successful completion.
41 = Permanent I/O error.
42 = End of volume.
43 = Drawer is opened, but diskette has same volume-ID.
45 = Bad sector not fixed by user.
47 = Stand-alone version of |1IOS or drawer is opened but volume label is
invalid or volume ID not the same.
49 = Unsupported control record.
3
IIOBQB
1
This is the Q-byte (in hex).
D0 = Seek.
D1 = Read data.
D2 = Read ID.
D4 = Read data/CAM.
(D and F control records are not squeezed out as in |1PRD.)
D5 = Write data.
D6 = Write control address marks.
D7 = Write ID.
4
IIOBRB
1
This is the R-byte (in hex).
80 = Seek after.
00 = Null.
5
IIOBSS
2
This is the sector address.
7
IIOBNB
1
This is the number of sectors, minus 1, involved in data transfer.
8
IIOBDAT
2
This is the data buffer address.
A
IIOBSNS1
2
Sense bytes 0 and 1.
Byte 0 (in hex).
80 = Missing data address mark (two consecutive AMs found).
40 = CRC found in ID field.
20 = CRC found in data field.
10 = Cylinder byte in ID miscompare.
08 = Head byte in ID miscompare.
04 = Record byte in ID miscompare.
02 = Length byte in ID miscompare.
01 = First ID is found (no error).
Byte 1 (in hex).
80 = Due to prior condition, no action attempted.
40 = Invalid control record found (not D or F).
20 = Lines to |1 were not set/read correctly.
10 = Control record(s) squeezed out.
08 = Physical cylinder number greater than 76.
04 = Reserved.
02 = Reserved.
01 = Reserved.
C
IIOBSNS2
2
Sense bytes 2 and 3.
Byte 2 (in hex).
80 = |1 index pulses too close together.
40 = |1 index pulses too far apart.
20 = End-of-cylinder found (not tested).
10 = No IDs on track.
08 = Read overrun.
02 = Write overrun.
01 = Write parity check.
Byte 3 (in hex).
80 = Head loaded.
40 = Low gate current set.
20 = Write gate on.
10 = Erase gate on.
08 = Seek to track 3 or 0 on.
04 = Seek to track 0 or 1 on.
02 = Seek to track 1 or 2 on.
01 = Seek to track 2 or 3 on.
E
IIOBERR
1
This is the error retry count.
F
IIOBFLG
1
This is the flag byte.
Bit On Meaning
------ -------
0 No ERPs attempted.
1 Automatic error display and correction allowed.
2 No error logging.
3 Allow seek past logical cylinder 74 (to 75 or 76).
4 Do not return to user program if ERP completion
code is |1COMPER, |1NOTFIX, or |1INVCAM.
10
Reserved
1
Reserved.
11
IIOBEXP
1
This is the sector size.
12
IIOBXR2
2
This is a save area for XR2.
14
IIOBARR
2
This is a save area for the ARR.
16
IIOBDTF
2
This is the DTF address.
Diskette drive operating characteristics
========================================
The program must build a diskette IOB (Figure 8-2) to control diskette
operations. Diskettes perform most efficiently if programs use sequential data
organization, which is normally used for data interchange and data file
save/restore functions. The system performs seek, read, and write which are
typical direct access storage device functions. Diskette input and output
operations cannot be overlapped with any other system function.
Diskette control fields and data fields
---------------------------------------
Before issuing a seek, read, or write instruction, the program usually must
initialize the diskette control fields and data fields. These fields, which
can be located anywhere in main storage, are addressed by the control address
register (CAR) and data address register (DAR), respectively.
Control field
The 5-byte control field (CHRNX) is used to specify:
- For a seek operation, the destination track address (00-76 or hex FF);
the cylinder address of hex FF specifies a recalibrate operation. H,
R, N, and X are not used for a seek operation.
- For a seek, read-data-and-control-record, write-data, or write-
control-address-mark operation:
C is the destination cylinder for the automatic seek.
R is the starting record number.
N is the number of bytes per record (128 x 2 to the power of N).
X+1 is the number of records to be accessed.
Before processing any data field, the system compares the CHRN portion of the
control field and the corresponding portion of the identifier field of the
record read. This process is called orientation. If orientation cannot be
done, the system turns on the no-orient status bit (status byte 2, bit 3).
As instruction execution proceeds, the system modifies the R- and X-bytes of
the control field after each record is successfully processed; this maintains
a log of instruction execution for error recovery procedures.
The program must load the address of the leftmost byte of the control field
into the control address register prior to instruction execution.
The control field (CHRNX) has the following meaning:
- C (cylinder number) is a 1-byte address; valid decimal addresses are 0
through 76. Cylinder addresses 77-254 set the invalid cylinder address
(byte 1, bit 4); cylinder address 255 specifies recalibrate. This byte
is not changed during execution unless a cylinder boundary is crossed
during a read-data, write-data, or write-control address-mark
operation.
Note: For this device, the term cylinder and track are synonymous.
- H (head number) is a 1-byte address; the only valid decimal address is
0. This byte remains unchanged during command execution.
- R (record number) is a 1-byte binary address that specifies the first
record to be processed in a single-record or multiple-record data
operation. Decimal record numbers 1 through 26 are valid for standard
interchange diskettes, 1 through 8 for extended format diskettes;
invalid record numbers set the record-mismatch status bit (byte 0, bit
5). The system increments the record number by 1 after each record is
processed if a not-ready/unit-check condition is not detected.
- N (record length indicator) is a 1-byte binary number that indicates
the physical record length. N must be 0 for 128-byte records, 2 for
512-byte records. This byte remains unchanged during command
execution.
- X (number of records) is a 1-byte binary number plus 1 that specifies
the number of records to be processed; the system decrements this byte
by 1 after each record is processed if a not-ready/unit-check
condition is not detected. If the system does not find a control
record during a read-data operation, this byte is not decremented.
Data field
The system transfers data to the data field during read operations, and from
the data field during write operations. The data field is addressed by the
leftmost byte and can be located arbitrarily in main storage. Prior to
instruction execution, the program must load the data field address into the
data address register. For a read-data, read-data-and-control-record, write-
data, or write-control-address-mark operation, the record length indicator and
the number of records to be processed determine the data field length as
follows:
Data field length = (X + 1) 128 X 2 to the power of N
where X and N come from the control field CHRNX.
Control address register
------------------------
This 2-byte field in control storage contains the address of the leftmost byte
of the control field. The control address register must be initialized by
load-diskette-control-field-address-register instruction, and is not modified
during command execution.
Data address register
---------------------
This 2-byte field in control storage contains the address of the data byte
following the last data field byte accessed. It is initialized to the address
of the leftmost byte of the data field before the data field is used to
execute an instruction. The data address register changes after a record is
transferred and no errors are found.
Diskette operations
===================
Diskette seek
-------------
During a control seek, the access mechanism is moved so that the read/write
head is at the track address specified in the control field. The R-byte of the
seek instruction has no significance. A recalibration to cylinder 00 is
performed by specifying FF in the cylinder address bytes (CC) of the control
field.
The seek operation does not check for an invalid address prior to seek
verification. Instead, the system detects an invalid address or a seek failure
when it compares the control field and record ID field during the next read or
write operation.
A single-track seek has some unique functional characteristics that improve
save/restore performance. A single-track seek command requires a maximum of
170.83 ms to execute and considerably decreases the time required to handle
the following diskette read or write instruction.
A seek beyond a single track seek requires a maximum of 106 + 53 ms SD. Where
SD means seek displacement in tracks. Recalibrate time is 4.346 seconds
maximum.
Read data
---------
This operation initiates an automatic seek to the logical track address
specified in the control field and then, beginning at the record number
specified in the control field, reads X+1 records into contiguous positions of
the data field addressed by the data address register. When a flagged track is
encountered, an automatic seek to the next record is executed. A maximum of
three automatic seeks are attempted before the operation is terminated.
If the end of a cylinder is encountered before X+1 records have been accessed,
an automatic seek to record 1 of the next track occurs and execution
continues.
Read data and control record
----------------------------
This operation is very similar to the read-data operation. It initiates an
automatic seek to the logical track address specified in the control field,
and then reads X+1 records into contiguous positions of the data field
addressed by the data address register. The system reads the records beginning
at the record number specified within the control field. Whenever the system
encounters a flagged track, it seeks the next record. The system tries a
maximum of three automatic seeks before termination of the operation.
If the system encounters the end of cylinder before X+1 records have been
accessed, it executes an automatic seek to record 1 of the next track and
continues with the operation.
There is one difference between this operation and the read-data operation. In
this command, if a control address mark is detected, the system sets control-
address-mark status (byte 1, bit 3) (this bit cannot be tested by a TIO) and
reads the control record data field into the data field in main storage
regardless of the control character in the first position of the record data
field.
For multiple record operations, the system alters the control field when each
record is read. The record number (R) is incremented by 1 and the number of
records to be accessed (X) is decremented by 1. If a cylinder boundary is
crossed, the cylinder number is increased by one and the record number is
reset to 1.
The record number (R) is incremented by 1 and number of records to be accessed
(X) is decremented by 1 as each record is read. If a cylinder boundary is
crossed, the cylinder number (C) also increases by 1 and the record number is
reset to 1. The rest of the control field does not change.
Note: If a control address mark (hex F8) is detected and the first character
in the data field is not hex C4 or C6 (alpha D or F), the system posts invalid
control record status (byte 1, bit 1) and control address mark (byte 1, bit 3)
and ends the read operation. If an alphabetic D or F is in the first position
of the data field, the system ignores that record and reads subsequent
records.
Read ID (Identifier)
--------------------
This operation initiates the recovery of a single 4-byte identifier field,
CHRN, from the current selected track. The system places the first identifier
read without error in the data field at the address specified in the data
address register. If no ID on the current track can be read successfully, the
system posts the no-orient status (byte 2, bit 3).
No automatic seek occurs, and the control field remains unchanged.
Note: If a defect appears in an ID field, your program can delete the entire
track by writing a defective track identifier in all records on that track.
This ID is CHRN = hex FFFFFFFF. All track information, including ID fields,
must be put on the next-higher-numbered track.
Write/verify data
-----------------
This operation initiates an automatic seek to the logical track adddress
specified in the control field and writes X+1 records obtained from contiguous
positions of the data field addressed by the data address register. Records
are written beginning at the record number specified within the control field.
Whenever the system encounters a flagged track, it automatically seeks the
next track. A maximum of three automatic seeks are attempted before the
operation is terminated. Each record is 128 or 512 bytes long and is written
in accordance with the record format described in "Diskette control fields and
data fields" in this chapter. At the same time, the system writes a data
address mark (hex FB) in the byte immediately preceding the data field in the
record.
Data verification automatically occurs during the next diskette revolution.
If the system encounters the end of cylinder before X+1 records have been
accessed, an automatic seek to record 1 of the next track occurs and execution
continues.
The system increments by 1 and decrements the number of records to be accessed
by 1 as each record is written. If a cylinder boundary is crossed, the system
also increments the cylinder number by 1 and sets the record number to 01. The
system does not change the rest of the control field.
Write/verify control address mark
---------------------------------
This operation is very similar to a write-data operation. It initiates an
automatic seek to the logical track address specified in the control field and
then writes X+1 records obtained from contiguous positions of the data field
addressed by the data address register. Records are written, beginning at the
record number specified within the control field. The only difference between
this operation and the write-data operation is that a control address mark
(hex F8) is written in the byte immediately preceding the data field in the
record. The data field of each record written is 128 or 512 bytes long and is
written in accordance with the record format reference. When the system
encounters a flagged track, an automatic seek to the next track occurs. The
system attempts a maximum of three automatic seeks before ending the
operation.
Data verification occurs during the next diskette revolution.
If the end of a cylinder is encountered before X+1 records have been accessed,
an automatic seek to record 1 of the next track occurs and execution
continues.
The control field remains unchanged except for the record number and number of
records to be accessed during multiple record operations; these values are
incremented by 1 and decremented by 1, respectively, as each record is
written. If a cylinder boundary is crossed, the system adds 1 to both the
cylinder number and sets the record number to 01.
Write/verify ID (Identifier)
----------------------------
The write-ID/verify operation initiates the writing of a full track of data in
accordance with the record format described in "Diskette control fields and
data fields" in this chapter.
The system forces the record number in the control field to 1 so that the
first record written after the index point is record 1. The system generates
subsequent record numbers by incrementing the record number byte by 1 as each
record is written. Data for each record data field is obtained from the same
128-byte or 512-byte data field in main storage. The system writes an entire
128-byte or 512-byte data field from storage for each disk record written.
Data verification automatically occurs during the next diskette revolution.
The record number is the only byte in the control field that changes; it is
decimal 26 or 8 at the end of the operation.
Note: Write ID is intended to be used for track initialization procedures. If
the cylinder portion of the CHRN field is specified as hex FF, the record
number portion is not incremented during write-ID execution. This writes a
defective track identifier field equal to hex FFFFFFFF. During automatic data
verification, length-mismatch and no-orient status are set. ID verification
should be performed by the read-ID instruction.
Check condition and status information
======================================
Refer to Figure 8-3 for a summary of diskette operations, diskette indicators
set, and suggested restart procedures.
Format: Bit
Description
Status byte 0
-------------
0
"Missing data address mark" indicates that a data address marker is not
detected after an ID field. The next diskette operation or system reset
operation resets this bit.
1
"ID CRC" indicates a cyclic redundancy check noncompare in an ID field:
- When the searching for an ID field and orientation can not be achieved
- After initial orientation, when a subsequent ID CRC is detected.
The next diskette operation or system reset operation resets this bit.
2
"Data CRC" indicates a cyclic redundancy check noncompare in the data field
after initial record orientation. The next diskette operation or system reset
operation resets this bit.
3
"Cylinder mismatch" indicates a mismatch between the cylinder address portion
of the ID field and the control field during an ID search. This bit is reset
prior to diskette I/O instruction execution or by a system reset operation.
4
"Head mismatch" indicates a mismatch between the head address portion of the
ID field and the control field during an ID search. This bit is reset prior to
the next diskette operation or by the next system reset operation.
5
"Record mismatch" indicates that no match between the record address portion
of any ID field and the control field occurred during an ID search. This bit
is reset prior to the next diskette operation or by the next system reset
operation.
6
"Length mismatch" indicates a mismatch between the record length portion
of
the ID field and the control field during an ID search. This bit is
reset
prior to the next diskette operation or by the next system reset operation.
7
This bit is reserved.
Status byte 1
-------------
0
"No operation" indicates that a diskette I/O instruction cannot be
executed
because of an outstanding not-ready status. This bit is reset by the
next
diskette I/O instruction or by a system reset operation.
1
"Invalid control record" indicates that the leftmost byte of a control
record
data field contains other than an F or D control graphic. This bit is reset
by
a diskette I/O instruction or by system reset.
2
"Control error" indicates that a low write current existed during a
diskette
write operation or write or erase gate selection was made during any
diskette
I/O operation except write. This bit is reset prior to a diskette
I/O
operation or by a system reset operation.
3
"Control address mark record found" indicates that a control address mark
was
found. This record was skipped and the next one was processed in its place
if
the operation was read-data and the leftmost byte of the data field
contained
hex D or F. This condition is not tested by a test instruction. The
next
diskette read, write, or seek operation resets the
control-address-mark-
record-found bit.
4
"Cylinder address invalid" indicates that the logical cylinder number in
the
control field exceeds 76. This bit is reset prior to a start diskette
command
or by a system reset operation.
5
"Write error" indicates that either a write overun (status byte 2, bit 6) or
a
write parity check (byte 2, bit 7) was detected during a write operation.
This
bit is reset by the next diskette I/O instruction or by a system
reset
operation.
6
This bit is used by the system.
7
This bit is used by the system.
Status byte 2
-------------
0
"Diskette fast" indicates that the diskette rotates faster than the
maximum
specified rate of 369 RPM, or 162.50 ms per revolution. This bit is
reset
prior to the next diskette operation or by a system reset operation.
1
"Not ready" indicates that:
The diskette is not inserted, or
The door is not closed, or
The diskette is inserted backwards, or
The diskette unit is malfunctioning.
"Ready" is conditioned by a recalibrate operation if the diskette is up
to
proper speed. This is the only way this bit can be reset.
2
This bit is unassigned.
3
"No orient" indicates that a record specified by the record address in
the
control field of a data operation could not be found. This bit is reset
prior
to the next diskette operation or by a system reset operation.
4
"Read overrun" indicates that the minimum data transfer rate was
not
maintained during a data transfer operation from the diskette to main
storage.
This bit is reset prior to the next diskette operation or by a system
reset
operation.
5
This bit is unassigned.
6
"Write overrun" is similar to a read overrun except that the minimum
data
transfer rate is not maintained during data transfer from main storage to
the
diskette. The next diskette read, write, or seek operation or system
reset
operation resets this bit.
Note: This status bit can be sensed by the program for a write-ID
operation
only. Write-error status (byte 1, bit 5) is set simultaneously; the
program
can sense this bit.
7
"Write parity check" indicates that a mismatch between data-bus-out parity
and
system generated serial-write-data parity was detected during a
write
operation. The next diskette read, write, or seek operation or system
reset
operation resets this bit.
Note: This status bit can be sensed by the program for a write-ID
operation
only. Write-error status (byte 1, bit 5) is set simultaneously; the
program
can sense this bit.
Status byte 3
-------------
The status bits in this byte cannot be sensed by your program. Bits 0 and
4-7
may be on if a 1-track seek preceded the I/O operation bits 1, 2, and 3
will
be off. (ROCHE>? if a ... preceded the I/O operation. Then, bits... ?)
0
The head is loaded.
1
The low write current to diskette is set.
2
The write gate to diskette is on.
3
The erase gate to diskette is on.
4
Seek to track 3 or 0 is on.
5
Seek to track 0 or 1 is on.
6
Seek to track 1 or 2 is on.
7
Seek to track 2 or 3 is on.
IMPL (Initial Microprogram Load) and IPL (Initial Program Load)
---------------------------------------------------------------
IMPL and IPL are selected by toggle switches located on the CE panel and
are
initiated by pressing the LOAD key located on the operator's panel.
A diskette IMPL initiates the transfer of the 4096-byte IMPL record located
on
track 00, record 01 into storage. This 4096-byte record is a special
record
used by the system; it is never used by the programmer.
The IPL from the diskette is not the normal mode and is used primarily
for
installing a new supervisor. IPL from diskette is initiated by the
system
immediately following a successful IMPL if the DEVICE SELECT switch is set
to
select IPL from the diskette.
Suggested diskette error recovery procedures
--------------------------------------------
The recovery procedures presented in Figure 8-3 can be used to restore
system
operation. The type of action necessary is determined by performing a
sense-
diskette operation, then testing to determine which diskette status bits
are
on.
Figure 8-3. Diskette operation ending conditions, status, and
suggested
restart
Notes:
a = No-op is set by all operations except recalibrate.
b = This condition is not tested for error recovery procedure.
Suggested action <-------------------------------+
|
Condition set by: |
Seek Q-Byte D0 <--------------------------+ |
Read Data Q-Byte D1 <------------------------+ | |
Read ID Q-Byte D2 <----------------------+ | | |
Read Data and Control Data Q-Byte D4 <--------------------+ | | | |
Write Data (Write Cycle) Q-Byte D5 <------------------+ | | | | |
Write Data (Verify Cycle) Q-Byte D5 <----------------+ | | | | | |
Write Control (Write Cycle) Q-Byte D6 <--------------+ | | | | | | |
Write Control (Verify Cycle) Q-Byte D6 <------------+ | | | | | | | |
Write ID (Write Cycle) Q-Byte D7 <----------+ | | | | | | | | |
Write ID (Verify Cycle) Q-Byte D7 <--------+ | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
Status Byte 0 | | | | | | | | | | |
------------- | | | | | | | | | | |
| | | | | | | | | | |
Bit Name | | | | | | | | | | |
--- ---- V V V V V V V V V V V
0 Missing data address mark |X|X| |X| |X| |X| |X| 3
| | | | | | | | | | |
1 ID CRC | |X|X|X|X|X|X|X| |X| 3
| | | | | | | | | | |
2 Data CRC | |X| |X| |X| |X| |X| 3
| | | | | | | | | | |
3 Cylinder mismatch | |X| |X|X|X|X|X| |X| 3
| | | | | | | | | | |
4 Head mismatch | |X| |X|X|X|X|X| |X| 3
| | | | | | | | | | |
5 Record mismatch | |X| |X|X|X|X|X| |X| 3
| | | | | | | | | | |
6 Length mismatch | |X| |X|X|X|X|X| |X| 3
| | | | | | | | | | |
7 Not used | | | | | | | | | | | 3
| | | | | | | | | | |
| | | | | | | | | | |
Status Byte 1 | | | | | | | | | | |
------------- | | | | | | | | | | |
| | | | | | | | | | |
Bit Name | | | | | | | | | | |
--- ---- | | | | | | | | | | |
0 No op |a|X| |X| |X| |X| |X| 3
| | | | | | | | | | |
1 Invalid control record | |X| |X| | | | | | | 4
| | | | | | | | | | |
2 Control error |X|X|X|X|X|X|X|X|X|X| 3
| | | | | | | | | | |
3 Control address mark record found |b|b|b|b|b|b|b|b|b|b|
| | | | | | | | | | |
4 Cylinder address invalid |X|X| |X|X|X|X|X| |X| 2
| | | | | | | | | | |
5 Write error | | | | |b|b|b|b|b|b|
| | | | | | | | | | |
6 Not used | | | | | | | | | | |
| | | | | | | | | | |
7 Not used | | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
Status Byte 2 | | | | | | | | | | |
------------- | | | | | | | | | | |
| | | | | | | | | | |
Bit Name | | | | | | | | | | |
--- ---- | | | | | | | | | | |
0 Diskette fast |X|X|X|X|X|X|X|X|X|X| 3
| | | | | | | | | | |
1 Not ready |X|X|X|X|X|X|X|X|X|X| 1
| | | | | | | | | | |
2 Not used | | | | | | | | | | |
| | | | | | | | | | |
3 No orient | |X|X|X| |X| |X| |X| 3
| | | | | | | | | | |
4 Read overrun | |X|X|X| |X| |X| |X| 3
| | | | | | | | | | |
5 Not used | | | | | | | | | | |
| | | | | | | | | | |
6 Write overrun | | | | |X| |X| |X| | 3
| | | | | | | | | | |
7 Write parity check | | | | |X| |X| |X| | 3
Suggested action
----------------
Number Description
------ -----------
1 1. Recalibrate.
2. Read volume label.
3. Check volume 1 standard and volume identification for validity.
(If not valid issue message to insert correct diskette.)
4. Repeat until valid diskette is inserted or until job is canceled.
5. Post possible wrong-diskette-inserted return code.
6. Return.
2 1. Post end-of-volume return code.
2. Return.
3 1. Retry three times or until successful.
a. If not successful, seek forward and backward one
cylinder
three times or until successful.
b. If step 1a is not successful, and if the system is executing
a
read data operation, evoke an automatic sector rebuild. If
the
system is not executing a read data operation, post
the
permanent-error return.
2. Log the diskette error.
3. Return.
4 1. Post invalid-control-record-read return code.
2. Return.
Initialization procedures
-------------------------
Diskette initialization procedures described below guarantee a
serviceable
diskette. Basic initialization objectives are that:
- Track 00 must be free of defects.
- Diskettes are initialized in accordance with the basic
interchange
record format defined in this chapter under "Diskette control
fields
and data fields".
- Defective tracks are flagged defective and the ERMAP is updated.
To initialize the diskette:
1. Reinitialize track 00.
a. Write ID/verify with 128 bytes of hex E5 in the data field.
If
unsuccessful, retry a maximum of two times, and if still
unsuccessful,
go to step 3.
b. Write data/verify with 128 bytes of hex 40 in the data field.
If
unsuccessful, retry a maximum of two times, and if still
unsuccessful,
go to step 3.
2. Continue to sequentially reinitialize the remainder of the diskette
by
repeating step 1. (Be sure to reinitialize sectors of the
appropriate
length -- 128 bytes each or 512 bytes each.)
3. If track 00 cannot be successfully initialized, discard the
diskette.
If track 00 is successfully initialized and some other track is
found
defective, use the surface defect procedures, flag the
defective
track, and update the ERMAP.
Surface defect procedures
-------------------------
The track must be flagged as defective and the ERMAP label must be
updated
during a reformatting operation if less than two tracks have been
previously
flagged.
The diskette must be discarded if track 00 is defective, or if two tracks
have
been flagged as defective and an additional track is found defective.
EOF